<?php
class CPartnerkiHelper {
    public static function getShortText($string, $count=30) {
        $text=strip_tags($string);
        if(mb_strlen($text, 'UTF-8')>$count) {
            $pos = mb_strpos($text, ' ', $count, 'UTF-8');
            $text = mb_substr($text, 0, $pos, 'UTF-8');
            return $text.'...';
        }
        else return $text;
    }
    
    public static function ArrToStr($data, $param, $separator=' ') {
        $resStr = '';
        if(!empty($data)) {
            for($i=0; $i<count($data); $i++) {
                if($i) $resStr .= $separator;
                $resStr .= $data[$i][$param];
            }
        }    
        return $resStr;
    }
    
    public static  function toTranslit($string) {
        $tr = array(
            'А'=>'A', 'Б'=>'B', 'В'=>'V', 'Г'=>'G', 'Д'=>'D', 'Е'=>'E', 'Ё'=>'Yo', 'Ж'=>'Zh', 'З'=>'Z', 'И'=>'I',
            'Й'=>'J', 'К'=>'K', 'Л'=>'L', 'М'=>'M', 'Н'=>'N', 'О'=>'O', 'П'=>'P', 'Р'=>'R', 'С'=>'S', 'Т'=>'T',
            'У'=>'U', 'Ф'=>'F', 'Х'=>'H', 'Ц'=>'C', 'Ч'=>'Ch', 'Ш'=>'Sh', 'Щ'=>'W', 'Ъ'=>'', 'Ы'=>'Y', 'Ь'=>'',
            'Э'=>'Ye', 'Ю'=>'Yu', 'Я'=>'Ya',

            'а'=>'a', 'б'=>'b', 'в'=>'v', 'г'=>'g', 'д'=>'d', 'е'=>'e', 'ё'=>'yo', 'ж'=>'zh', 'з'=>'z', 'и'=>'i',
            'й'=>'j', 'к'=>'k', 'л'=>'l', 'м'=>'m', 'н'=>'n', 'о'=>'o', 'п'=>'p', 'р'=>'r', 'с'=>'s', 'т'=>'t',
            'у'=>'u', 'ф'=>'f', 'х'=>'h', 'ц'=>'c', 'ч'=>'ch', 'ш'=>'sh', 'щ'=>'w', 'ъ'=>'', 'ы'=>'y', 'ь'=>'',
            'э'=>'ye', 'ю'=>'yu', 'я'=>'ya',

            '!'=>'', '@'=>'', '#'=>'', '$'=>'', '%'=>'', '^'=>'', '&'=>'', '*'=>'', '('=>'', ')'=>'', '"'=>'', ' '=>'_', 
            ';'=>'', ':'=>'', '?'=>'', '['=>'', ']'=>'', '{'=>'', '}'=>'', '\''=>'', '№'=>'', '-'=>'_', 
            ','=>'', '.'=>'', '/'=>'', '<'=>'', '>'=>'', '\\'=>'', '|'=>'', '/'=>'', '='=>'', '+'=>'', 
        );
        return strtr($string, $tr);
    }

    public static function fromTranslit($string) {
        $tr = array(
            'A'=>'А', 'B'=>'Б', 'C'=>'К', 'D'=>'Д', 'E'=>'Е', 'F'=>'Ф', 'G'=>'Дж', 'H'=>'Ш', 'I'=>'И', 'J'=>'',
            'K'=>'К', 'L'=>'Л', 'M'=>'М', 'N'=>'Н', 'O'=>'О', 'P'=>'П', 'Q'=>'К', 'R'=>'Р', 'S'=>'С', 'T'=>'Т',
            'U'=>'У', 'V'=>'В', 'W'=>'В', 'X'=>'', 'Y'=>'И', 'Z'=>'З',
            
            'a'=>'а', 'b'=>'б', 'c'=>'к', 'd'=>'д', 'e'=>'е', 'f'=>'ф', 'g'=>'дж', 'h'=>'ш', 'i'=>'и', 'j'=>'',
            'k'=>'к', 'l'=>'л', 'm'=>'м', 'n'=>'н', 'o'=>'о', 'p'=>'п', 'q'=>'к', 'r'=>'р', 's'=>'с', 't'=>'т',
            'u'=>'у', 'v'=>'в', 'w'=>'в', 'x'=>'', 'y'=>'и', 'z'=>'з',
        );
        return strtr($string, $tr);
    }
    
    public static function printQuotesAndMessage($str) {
        preg_match_all('/ \[quote(\s*|="(.*)")\s*(\s*|date="(.*)")\](.*)\[\/quote\](\s*|\S*)|\[quote /Uxis', $str, $res);
        $quotes = array();
        for($i=0; $i<count($res[0]); $i++) {
            $quote = '<div class="quote">';
              if(!empty($res[4][$i])) $quote .= '<span class="date">'.$res[4][$i].'</span>';
            if(!empty($res[2][$i])) $quote .= '  <span class="nick">'.$res[2][$i].'</span> ';
            else $quote .= '<span class="nick">Неизвестный</span> ';
            $quote .='<br/>';
            if(!empty($res[5][$i])) $quote .= '<span class="quoteContent">'.$res[5][$i].'</span>';
            $quote .= '</div><br/>';
            $quotes[] = $quote;
        }
        return str_replace($res[0], $quotes, $str);
    }
    
//    функция преобразует переданный текст/строку, удаляя символы перевода строк, кавычки и апостроф
    public static function jsString($str='') {
        return preg_replace("/('|\"|\r?\n)/", '', $str); 
    }
    
    // концовка слова коментарий в зависимости от количества : 1 коментарий / 11 коментариев
    public function getEndCom($count) {
        $count = $count%100;
        if($count == 1) return 'й';
        elseif($count < 5) return 'я';
        else return 'ев';
    }
}
